#include "myhead.h"

/*
	创建多个子进程的思路：
		不断的在父进程的代码中调用fork即可
*/


int main()
{
	int *state = malloc(sizeof(int));
	pid_t ret;
	pid_t id1,id2,id3;
	//生第一个
	id1 = fork();
	if(id1>0){ //父进程
		//接着生第二个
		id2 = fork();
		if(id2>0){ //父进程
			//接着生第三个
			id3 = fork();
			if(id3>0){  //父进程

			}
			else{  //第三个进程
				printf("sao miao!id = %lu\n",getpid());
				exit(3);
			}
		}
		else{  //第二个进程
			printf("clear rubbish!id = %lu\n",getpid());
			exit(2);
		}
	}
	else {  //第一个进程
		printf("sha du! id = %lu\n",getpid());
		exit(1);
	}
	//回收三个儿子
	ret = wait(state);
	printf("son : %lu,value : %d\n",ret,WEXITSTATUS(*state));
	ret = wait(state);
	printf("son : %lu,value : %d\n",ret,WEXITSTATUS(*state));
	ret = wait(state);
	printf("son : %lu,value : %d\n",ret,WEXITSTATUS(*state));
	free(state);	

}